package cn.iocoder.yudao.module.trade.controller.admin.order.vo;

import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryModelEnum;
import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotNull;

import java.util.List;

@Schema(description = "管理后台 - 订单发货 Request VO")
@Data
public class TradeOrderDeliveryReqVO {

    @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @NotNull(message = "订单编号不能为空")
    private Long id;

    //logisticsId==0的时候 非物物流发货
    @Schema(description = "发货物流公司编号", example = "1")
    @NotNull(message = "发货物流公司不能为空")
    private Long logisticsId;

    @Schema(description = "发货物流单号", example = "SF123456789")
    private String logisticsNo;

    /**
     * 发货模式
     *
     * 枚举 {@link DeliveryModelEnum}
     */
    //发货模式，1-统一发货 2-分拆发货
    @Schema(description = "发货模式1-统一发货 2-分拆发货", example = "1")
    private Integer deliveryMode;

    /**
     * 配送方式
     *
     * 枚举 {@link DeliveryTypeEnum}
     */
    @Schema(description = "物流模式1-实体物流配送 3-同城配送", example = "1")
    private Integer deliveryType;


    @Schema(description = "订单项列表")
    private List<TradeOrderPageItemRespVO.Item> items;

    @Schema(description = "订单项列表")
    private List<TradeOrderPageItemRespVO.Item> itemsOther;

}
